package cn.com.cifi.mars.service;


import java.util.List;

import cn.com.cifi.mars.bean.bo.PortalTodoBo;
import cn.com.cifi.mars.bean.vo.monitoringConsole.PortalTodoVo;
import cn.com.cifi.mars.bean.vo.sys.rsp.CommonProjectByStagesVo;
import cn.com.cifi.mars.entity.common.IdmUser;

public interface CommonService {
	
	CommonProjectByStagesVo getOrgList(String regionId,String cityId,String projectId);

	 /**
	 * 发送门户待办消息  发起流程
	 * @param owerId 当前账号
	 * @param todoBo 代办数据
	 * @param userList 发给多个用户
	 * @return
	 */
	public String start(String owerId,PortalTodoBo todoBo,List<IdmUser>userList);
	
	/**
	 * 根据待办id和操作类型更新流程信息
	 * @param instanceId 待办id
	 * @param operatorType 操作类型  1/发起流程   2/流程更新   3/删除代办   4/待办转已办  5/抄送新增  6/抄送处理
	 * @param startUser 抄送发起人
	 * @param receiveUser 抄送接收人
	 * @return
	 */
	public String updatePortalProcess(String instanceId,String operatorType,IdmUser startUser,IdmUser receiveUser);
	
	
	 /**
	 * 发送门户待办消息  发起流程
	 * @param owerId 当前账号
	 * @param doorTodoBo 代办内容
	 * @param userList 发给多个用户
	 * @return
	 */
	public String startV2(String owerId,PortalTodoBo doorTodoBo,List<IdmUser>userList);
	
	
	/**
	 * 
	 * @Description：根据条件查询门户待办信息
	 * @param todoTypeCode 任务类型Code
	 * @param projectId 项目Id
	 * @param instanceId 实例ID
	 * @return List<PortalTodoVo>
	 * @author：yyd
	 * @date：2020年4月30日 下午3:19:57
	 */
	List<PortalTodoVo> getToDoInfo(String todoTypeCode, String projectId, String instanceId);

	/**
	 * 
	 * @Description：根据条件消除待办
	 * @param todoTypeCode 任务类型Code
	 * @param operatorType 操作类型
	 * @param projectId 项目Id
	 * @param instanceId 实例ID
	 * @param user 
	 * @author：yyd
	 * @date：2020年4月30日 下午3:19:57
	 */
	void cleanTodo(String todoTypeCode, String operatorType, String projectId, String instanceId, IdmUser user);

	//多用户发送提示消息门户待办
	List<String> sendMessagePortalTodo(PortalTodoBo todoBo, List<IdmUser> userList);
	
	//单用户发送提示消息门户待办
	String sendMessagePortalTodoByUser(String owerId, PortalTodoBo doorTodoBo, IdmUser us);

	/**
	 * 判断本地IP是否与配置IP一致
	 * @return 一致返回 true,其他返回 false;
	 */
	public boolean isAppointIP();

	String sendPortalTodo(String owerId, PortalTodoBo doorTodoBo, IdmUser user);
	
	public String sendTodoMsg(String owerId,PortalTodoBo todoBo,List<IdmUser>userList);
}
